若操作不当将可能导致网络卡顿甚至断网等异常情况。
若网络中存在业务的情况下,请同步客户风险并征得客户同意后再操作。
若您不清楚造成的影响或对操作不熟练,请不要操作,请联系专业的锐捷售后工程师进行评估后再决定是否操作。
应用场景:
DLDP适合于在网络出口位置的设备上面部署,通常是核心交换机,路由器,防火墙等。针对多运营商出口的链路或者是中间传输设备故障时能够快速的检测出来,以便及时进行路由切换(通常是将静态路由所关联的出口的SVI或者是no switchport的端口逻辑协议shutdown掉,从而引起路由切换)的场景,使原本比如走联通出口的数据能够快速的切换到备份的电信线路上去,避免业务中断。
DLDP功能在一些对网络可靠性,稳定性,容错性要求比较高的行业会容易用到,比如金融,医疗,运营商行业中。
功能简介:
一般的以太网链路检测机制都只是利用物理连接的状态,通过物理层的自动协商来检测链路的连通性。但是这种检测机制存在一定的局限性,在一些情况下无法为用户提供可靠的链路检测信息,比如在光纤口上光纤接收线对接错,由于光纤转换器的存在,造成设备对应端口物理上是linkup的,但实际对应的链路却是无法通讯的。再比如两台以太网设备之间架设着一个中间网络,由于网络传输中继设备的存在,如果这些中继设备出现故障,将造成同样的问题。这样的问题,通常导致实际链路已经不通,但三层以上的各种协议却收敛很慢,主要依赖于各协议自身的收敛性能。
DLDP(Data Link Detection Protocol)是一种基于快速检测以太网链路故障的检测协议。其通过ICMP echo报文的检测来解决这类问题。DLDP通过在三层接口(SVI、Routed Port、L3 AP)下不断的发出IPv4 ICMP echo进行通路检测,如果在指定时间内对端设备没有回应ICMP reply,则DLDP认为这个接口通路出现问题,将该接口设置为“三层接口DOWN”,于是触发各三层上的协议各种收敛、备份切换动作。由于DLDP只是设置“三层接口DOWN”,实际物理链路还是连通的(STP、802.1x等二层协议还将继续正常通讯),因此DLDP还是可以继续发出ICMP echo报文,如果对端设备恢复响应了ICMP reply,则三层接口恢复UP,恢复正常通讯。
DLDP和BFD的区别:
1、DLDP只能用于以太接口;BFD与接口无关,任意两个邻居建均可建立BFD关系;
2、DLDP利用ICMP报文探测;BFD使用协议自身探测报文;
3、DLDP是单向检测行为,可以单向使用;BFD是双向联动探测行为,两端都要启用;
4、DLDP基于接口,即探测失败后,逻辑上shutdown该接口(SVI,no switchport,三层AP口),和接口相关的路由均失效;BFD是基于邻居对,即探测一对邻居间的联通性,只对和该BFD关联的路由条目进行处理,控制粒度相对更精细。
优缺点:
DLDP的优点就是配置简单,维护量小。缺点也比较明显就是太过依赖ICMP这种协议报文,而没有独立性,DLDP是单向探测,如果ICMP replay报文从对端返回的时候可能被误发送到非预期的链路上,比如来回路由的不一致导致的从A端口发出ICMP echo,但是从B端口收到该ICMP replay,导致DLDP检测失败;或者是网络中存在ARP欺骗,导致ICMP报文转发到错误的设备上面使DLDP检测失败,或者是中间链路有安全设备,比如防火墙,审计设备等可能过滤掉了ICMP报文,导致DLDP检测失败。这些也是DLDP故障的一些常见原因。
一、组网需求
1、现场核心交换机有两个出口,默认要从电信口出去,当电信出口出现故障后往联通链路出口出去;
2、由于交换机和出口之间为静态路由协议且中间串接防火墙,电信出口的故障,交换机无法感知,会导致依旧把报文转发到电信出口,从而导致网络不通,交换机需要一种探测机制能够快速检测到出口异常并进行路由切换。
二、组网拓扑
三、配置要点
1)在核心交换机上配置默认路由,下一跳指向连接电信线路路由器的inside接口地址172.16.1.2;同时也要在核心交换机上创建浮动缺省路由,下一跳指向连接联通线路路由器的inside接口地址172.16.2.2,联通的明细的静态路由指向联通出口,从而实现缺省走电信,联通地址走联通,备份走联通的目的。
2)在核心交换机上配置DLDP,探测下一跳地址为连接电信线路路由器的outside接口对端的电信接口地址即1.1.1.1,同时使用DLDP探测联通链路的对端地址,达到双备份快速切换的目标。
四、配置步骤
核心交换机的配置
1、基本IP及路由设置
Ruijie>en
Ruijie#configure terminal
Ruijie(config)#interface gigabitEthernet 0/1
Ruijie(config-if-GigabitEthernet 0/1)#no switchport
Ruijie(config-if-GigabitEthernet 0/1)#ip address 172.16.1.1 255.255.255.0
Ruijie(config-if-GigabitEthernet 0/1)#exit
Ruijie(config)#interface GigabitEthernet 0/2
Ruijie(config-if-GigabitEthernet 0/2)#no switchport
Ruijie(config-if-GigabitEthernet 0/2)#ip address 172.16.2.1 255.255.255.0
Ruijie(config-if-GigabitEthernet 0/2)#exit
Ruijie(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.2 ------>配置默认路由
Ruijie(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2 20 ------>配置浮动路由,metric值为20,在默认路由生效情况下浮动路由不显示在路由表中
2、核心交换机DLDP配置
Ruijie(config)#interface gigabitEthernet 0/1
Ruijie(config-if-GigabitEthernet 0/1)#dldp 1.1.1.1 172.16.1.2 ----->配置DLDP检测电信出口链路,172.16.1.2[是next-hop
默认的探测参数(1000ms发送一次,一共尝试4次,持续收到3个报文后恢复)
Ruijie(config)#show dldp interface gigabitEthernet 0/1
Interface Type Ip Next-hop Interval Retry Resume State
--------- ------- --------------- --------------- -------- ----- ------ -----
Gi0/4 Active 1.1.1.1 172.16.1.2 100 4 3
DLDP的配置命令格式如下:
Ruijie(config-if)# dldp ip-address [ next-hop ip-address ] [ interval tick ] [ retry retry-num ] [ resume resume-num ]
启动DLDP检测,设置对端设备的IP地址。
next-hop ip-address:下一跳IP地址。
Interval tick:检测报文的发送间隔。取值范围1-6000 tick (1 tick =10毫秒),缺省值100 tick(1s)。也就是每1S发送一个icmp echo报文
retry retry-num:检测报文的重传次数。取值范围1-3600,缺省值4。如果发送了4个icmp echo,依然没有得到对方的回应,那么会将UP的端口变为Down状态
resume resume-num:恢复次数。取值范围1-200,缺省值3。也就是收到3个icmp echo报文后会自动从Down状态变为UP状态。
例如我要每1.5S发送一个ICMP探测报文,如果5次没有得到回应,将置为Down状态,如果连续收到4个icmp echo报文会自动恢复为UP状态,命令如下:
Ruijie(config-if-GigabitEthernet 0/1)#dldp 1.1.1.1 next-hop 172.16.1.2 interval 150 retry 5 resume 4
3、优化配置
根据如下原则进行参数修订或调整
注意事项:
1)一个三层接口下,DLDP可以配置多个IP检测,当所有IP都没有ICMP响应时,才认为接口DOWN;而一旦有一个IP恢复通讯,则认为接口恢复UP。
2)DLDP使用该三层接口的第一个IP地址作为报文的源IP地址进行通讯。
3)由于交换机有CPP、NFPP功能来控制ICMP报文的收发速率,所以在进行多个IP检测时,一定要注意CPP、NFPP所设置的收发包速率要大于DLDP报文的总收发包速率。例如:缺省值情况下每个DLDP检测点所占用的ICMP报文速率为10-20pps,当DLDP检测IP数目为100个时,整机设备的ICMP报文流量已经到达至少1000-2000pps了。这时,对应的CPP的ICMP控制需要调到适当值。这里建议关闭NFPP的ICMP-Guard功能。命令如下:
Ruijie#configure terminal
Ruijie(config)#nfpp
Ruijie(config-nfpp)#no icmp-guard enable
Ruijie(config-nfpp)#end
Ruijie#wr
另外CPP的ICMP值默认(不同的设备pps值可能不太一样)设置的一般比较大,一般不需要调整,除非DLDP检测的IP数目非常多(大于20个)才需要调。调整CPP ICMP的pps值,不同的设备命令稍微有所不同,例如S5750交换机调整CPP ICMP值的命令如下:
Ruijie(config)#cpu-protect type ipv4-icmp-local pps 4096
S5750E系列交换机的ICMP PPS值调整命令如下:
Ruijie(config)#cpu-protect type icmp bandwidth 4096
4)在某些情形下,检测链路可能不太稳定,比如PING断了三次,通一次,又断了多次。如果按简单的逻辑,其中的DLDP检测就是UP、DOWN多次,实际可能更加剧了不稳定。恢复次数表示链路从DOWN状态为UP状态前,需要收到连续的DLDP检测报文响应次数。恢复次数缺省为3次,即只有该链路上连续PING通了3次才会UP。这种情况下,虽然可能使链路检测会相对不那么灵敏,但增加了稳定性,因此相关参数在实际应用中还可根据实际网络情况进行调整。
五、功能验证
1、查看正常情况下核心交换机的路由表项
2、查看DLDP状态
3、验证DLDP功能如下
Ruijie#debug ip icmp ------>开启debug ip icmp,然后将lo0接口down掉
*Mar 29 14:21:26: %7: ICMP: echo reply rcvd, src 1.1.1.1, dst 172.16.1.1
*Mar 29 14:21:27: %7: ICMP: echo reply rcvd, src 1.1.1.1, dst 172.16.1.1
*Mar 29 14:21:28: %7: ICMP: echo reply rcvd, src 1.1.1.1, dst 172.16.1.1
*Mar 29 14:21:29: %7: ICMP:sending redirect host to 172.16.1.1,gw 172.16.1.2
*Mar 29 14:21:29: %7: ICMP:sending ttl(time to live) exceeded to 172.16.1.1
*Mar 29 14:21:29: %7: ICMP:redirect rcvd from 172.16.1.1 --for dst 1.1.1.1 use gw 172.16.1.2
*Mar 29 14:21:29: %7: ICMP: time exceeded rcvd from 172.16.1.1------>第一次超时
*Mar 29 14:21:30: %7: ICMP:sending redirect host to 172.16.1.1,gw 172.16.1.2
*Mar 29 14:21:30: %7: ICMP:sending ttl(time to live) exceeded to 172.16.1.1
*Mar 29 14:21:30: %7: ICMP:redirect rcvd from 172.16.1.1 --for dst 1.1.1.1 use gw 172.16.1.2
*Mar 29 14:21:30: %7: ICMP: time exceeded rcvd from 172.16.1.1------>第二次超时
*Mar 29 14:21:31: %7: ICMP:sending redirect host to 172.16.1.1,gw 172.16.1.2
*Mar 29 14:21:31: %7: ICMP:sending ttl(time to live) exceeded to 172.16.1.1
*Mar 29 14:21:31: %7: ICMP:redirect rcvd from 172.16.1.1 --for dst 1.1.1.1 use gw 172.16.1.2
*Mar 29 14:21:31: %7: ICMP: time exceeded rcvd from 172.16.1.1------>第三次超时
*Mar 29 14:21:32: %7: ICMP:sending redirect host to 172.16.1.1,gw 172.16.1.2
*Mar 29 14:21:32: %7: ICMP:sending ttl(time to live) exceeded to 172.16.1.1
*Mar 29 14:21:32: %7: ICMP:redirect rcvd from 172.16.1.1 --for dst 1.1.1.1 use gw 172.16.1.2
*Mar 29 14:21:32: %7: ICMP: time exceeded rcvd from 172.16.1.1------>第四次超时后将接口down掉
*Mar 29 14:21:33: %DLDP-5-STATECHANGE: Interface GigabitEthernet 0/1 - Dldp 1.1.1.1 state changed to down.
*Mar 29 14:21:33: %7: ICMP:sending redirect host to 172.16.1.1,gw 172.16.1.2
*Mar 29 14:21:33: %7: ICMP:sending ttl(time to live) exceeded to 172.16.1.1
*Mar 29 14:21:33: %7: ICMP:redirect rcvd from 172.16.1.1 --for dst 1.1.1.1 use gw 172.16.1.2
*Mar 29 14:21:33: %7: ICMP: time exceeded rcvd from 172.16.1.1
*Mar 29 14:21:34: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet 0/1, changed state to down.
4、此时浮动路由生效